/*
 * pid.h
 *
 * Created: 20241209
 * Author: Hecate
 */
#ifndef CODE_PID_H_
#define CODE_PID_H_

// PID 控制器对象句柄
typedef struct PID PID;

// 初始化 PID 控制器
PID *pidInit(float integralMax, float target, float kp, float ki, float kd);

// 执行一步 PID 计算
void pidProcess(PID *obj, float currentValue);

// 设置新的期望值
void pidSetTarget(PID *obj, float targetValue);

// 获取当前控制输出
float pidGetControlValue(const PID *obj);

#endif /* CODE_PID_H_ */
